using System;
using System.Collections.Generic;
using System.Text;
using Adoor.Expression.AST; 

namespace Adoor.Expression
{
    public interface IExpressionVisitor
    {
        void VisitName(ExpressionName n);
        void VisitEscape(ExpressionEscape e);
        void VisitParen(ExpressionParen p);
        void VisitPrimary(ExpressionPrimary p);
        void VisitUnary(ExpressionUnary u);
        void VisitBinary(ExpressionBinary b);
        void VisitIs(ExpressionIs i);
        void VisitIn(ExpressionIn i);
        void VisitInSubQuery(ExpressionInSubquery i);
        void VisitLike(ExpressionLike l);
        void VisitFunction(ExpressionFunction f);
        void VisitCorrelationFilteredNode(ExpressionCorrelationFilteredNode c);
        void VisitExistsSubQuery(ExpressionExistsSubquery i);
    }

}
